import SparkApi
import random
from demi import keys
appid = keys()[0]
api_secret=keys()[1]
api_key =keys()[2]
# print(appid)
# print(type(appid),len(appid))
# print(api_secret)
# print(type(api_secret),len(api_secret))
# print(api_key)
# print(type(api_key),len(api_key))
if len(appid) <8:
    print('未检测到appid填写或者错误，可以在目录中的key.txt中输入您的信息。也可以直接在此填写，')

    shuru=input('如果你想在这里输入APPID，请输入1并回车，1以外的将直接退出===>>>>>')
    if shuru == '1':
        appid = input('请输入你的appid,并且按回车===>>>：')
        api_secret=input('请输入你的api_secret,并且按回车===>>>：')
        api_key =input('请输入你的api_key,并且按回车===>>>：')
        with open('key.txt', 'w', encoding='utf-8') as f:
            f.write('appid ='+appid+'\n')
            f.write('api_secret='+api_secret+'\n')
            f.write('api_key='+api_key+'\n')
            f.write('请确认=号前后不要留任何空格，否则会导致星火回答是###，星火api获取地址:https://console.xfyun.cn/services/vms，如果想重新输入id，只需要将appid=后面的内容删除即可！')
            print('api已经写入，如果需要更换，请重新安装或者删除key.txt中=号后面的内容')
            f.close()
    else:
        quit()



#用于配置大模型版本，默认“general/generalv2”
# domain = "general"   # v1.5版本
domain = "4.0Ultra"    # v2.0版本
#云端环境的服务地址
# Spark_url = "ws://spark-api.xf-yun.com/v1.1/chat"  # v1.5环境的地址
Spark_url = "ws://spark-api.xf-yun.com/v4.0/chat"  # v2.0环境的地址


text =[]

# length = 0

def getText(role,content):
    jsoncon = {}
    jsoncon["role"] = role
    jsoncon["content"] = content
    text.append(jsoncon)
    return text

def getlength(text):
    length = 0
    for content in text:
        temp = content["content"]
        leng = len(temp)
        length += leng
    return length

def checklen(text):
    while (getlength(text) > 8000):
        del text[0]
    return text
    


if __name__ == '__main__':
    text.clear
    while(1):
        Input = input("\n" +"我:")
        question = checklen(getText("user",Input))
        SparkApi.answer =""
        result= random.randint(0,50)

        if result > 45:
            print("☆制作者:LEELU，",end = "B站ID：拔剑四顾我心茫然☆给你回复：")
        else:
            print("星火:", end=" ")
        SparkApi.main(appid,api_key,api_secret,Spark_url,domain,question)
        getText("assistant",SparkApi.answer)
        # print(str(text))

